package com.ciaojian.core.util;

import java.sql.Time;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 时间工具类
 *
 * @author Atlakyn
 */
public class TimeUtil {

    /**
     * 获取指定时间偏移指定时间后的时间，生成的偏移时间不影响原时间
     *
     * @param time   时间
     * @param offset 分钟数
     * @return 偏移后的时间
     */
    public static Time offset(Time time, int offset) {
        long millimetre = (long) offset * 60 * 1000;
        long t = time.getTime() + millimetre;
        time.setTime(t);
        return time;
    }

    /**
     * 对比两个时间的时分秒
     *
     * @param x 时间 1
     * @param y 时间 2
     * @return the value {@code 0} if {@code x == y};
     * a value less than {@code 0} if {@code x < y};
     * a value greater than {@code 0} if {@code x > y}
     * @throws ParseException 转换异常
     */
    public static int compareTo(Date x, Date y) throws ParseException {
        SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss");
        Date dt1 = df.parse(df.format(x.getTime()));
        Date dt2 = df.parse(df.format(y.getTime()+60000));
        // 比较时间大小
        return Long.compare(dt1.getTime(), dt2.getTime());
    }
    public static int compareToDown(Date x, Date y) throws ParseException {
        SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss");
        Date dt1 = df.parse(df.format(x.getTime()));
        Date dt2 = df.parse(df.format(y.getTime()));
        // 比较时间大小
        return Long.compare(dt1.getTime(), dt2.getTime());
    }

}
